from fastapi.security import OAuth2PasswordBearer

from api.settings import api_settings


# oauth2_scheme的 OAuth 2.0 使用遵循标准的身份验证方法处理安全请求.
TOKEN_URL = f"/api/{api_settings.API_VERSION}/token"

oauth2_scheme = OAuth2PasswordBearer(
    tokenUrl=TOKEN_URL,
    description="""通过登录 Access Token 签发后, API 根据要求 Authorization 添加页眉.  
> Authorization: Bearer {Access Token}"""
)
oauth2_optional = OAuth2PasswordBearer(
    tokenUrl=TOKEN_URL,
    auto_error=False,
    scheme_name="OAuth2PasswordBearer(Optional)",
    description="""Access Token不管是否发行 API 请求可用.  
> Access Token如果已发布: Authorization: Bearer {Access Token}  
> Access Token如果这还没有发布: 承认为非成员"""
)
# “无论是否发放Access Token，都可以进行API请求。
# >如果已发放Access Token：Authorization:Bearer{Access Token}
# >如果未发放Access Token：将其视为非会员”